package test3_25.demo12;

import java.util.Arrays;

/*
已知字符串：“this is a test of java”.
按要求执行以下操作：
(1) 统计该字符串中字母s出现的次数
(2) 取出子字符串"test"
(3) 用多种方式将本字符串复制到一个字符数组Char[] str中.
(4) 将字符串中每个单词的第一个字母变成大写， 输出到控制台。
(5) 用两种方式实现该字符串的倒叙输出。(用StringBuffer和for循环方式分别实现)
(6) 将本字符串转换成一个字符串数组，要求每个数组元素都是一个有意义的额英文单词,并输出到控制台
 */
public class Homework14_10 {

    public static void count(String str, String remove) {
        int startLength = str.length();
        String s = str.replace(remove, "");
        int endLength = s.length();
        int removeLength = remove.length();
        int num = (startLength - endLength) / removeLength;
        System.out.println("出现的次数为：" + num);
    }

    public static void main(String[] args) {

        String str = "this is a test of java";
        //(1) 统计该字符串中字母s出现的次数
        Homework14_10.count(str, "s");
        //(2) 取出子字符串"test"
        String[] str1 = str.split(" ");
        System.out.println(str1[3]);
        //(3) 用多种方式将本字符串复制到一个字符数组Char[] str中.
        char[] str2 = str.toCharArray();
        System.out.println(Arrays.toString(str2));

        char[] str3 = new char[str.length()];
        for (int i = 0; i < str.length(); i++) {
            str3[i] = str.charAt(i);
        }
        System.out.println(Arrays.toString(str3));

        //(4) 将字符串中每个单词的第一个字母变成大写,输出到控制台.
        String[] str4 = str.split(" ");
        StringBuilder sb = new StringBuilder();
        for (String s : str4) {
                String capitalizedWord = s.substring(0, 1).toUpperCase() + s.substring(1);
                sb.append(capitalizedWord).append(" ");
        }
        System.out.println(sb);

        //(5) 用两种方式实现该字符串的倒叙输出。(用StringBuffer和for循环方式分别实现)
        StringBuilder sb1 = new StringBuilder(str);
        System.out.println(sb1.reverse());

        char[] str5 = new char[str.length()];
        StringBuilder sb2 = new StringBuilder();
        for (int i = str.length()-1; i >= 0 ; i--) {
            str5[str.length()-1-i] = str.charAt(i);
            sb2.append(str.charAt(i));
        }
        System.out.println(sb2);

        //(6) 将本字符串转换成一个字符串数组，要求每个数组元素都是一个有意义的额英文单词,并输出到控制台
        String[] str6 = str.split(" ");
        System.out.println(Arrays.toString(str6));
    }
}
